<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Organization\V20210331\Models;
use TencentCloud\Common\AbstractModel;

/**
 * ListRoleAssignments response structure.
 *
 * @method string getNextToken() Obtain Token for querying the next page of returned results. Note: This parameter is displayed only when IsTruncated is true.
 * @method void setNextToken(string $NextToken) Set Token for querying the next page of returned results. Note: This parameter is displayed only when IsTruncated is true.
 * @method integer getTotalCounts() Obtain Total number of data entries that meet the request parameter conditions.
 * @method void setTotalCounts(integer $TotalCounts) Set Total number of data entries that meet the request parameter conditions.
 * @method integer getMaxResults() Obtain Maximum number of data entries per page.
 * @method void setMaxResults(integer $MaxResults) Set Maximum number of data entries per page.
 * @method boolean getIsTruncated() Obtain Whether the returned result is truncated. Valid values: true: truncated; false: not truncated.
 * @method void setIsTruncated(boolean $IsTruncated) Set Whether the returned result is truncated. Valid values: true: truncated; false: not truncated.
 * @method array getRoleAssignments() Obtain Authorization list of the target account of the Tencent Cloud Organization.
 * @method void setRoleAssignments(array $RoleAssignments) Set Authorization list of the target account of the Tencent Cloud Organization.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class ListRoleAssignmentsResponse extends AbstractModel
{
    /**
     * @var string Token for querying the next page of returned results. Note: This parameter is displayed only when IsTruncated is true.
     */
    public $NextToken;

    /**
     * @var integer Total number of data entries that meet the request parameter conditions.
     */
    public $TotalCounts;

    /**
     * @var integer Maximum number of data entries per page.
     */
    public $MaxResults;

    /**
     * @var boolean Whether the returned result is truncated. Valid values: true: truncated; false: not truncated.
     */
    public $IsTruncated;

    /**
     * @var array Authorization list of the target account of the Tencent Cloud Organization.
     */
    public $RoleAssignments;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param string $NextToken Token for querying the next page of returned results. Note: This parameter is displayed only when IsTruncated is true.
     * @param integer $TotalCounts Total number of data entries that meet the request parameter conditions.
     * @param integer $MaxResults Maximum number of data entries per page.
     * @param boolean $IsTruncated Whether the returned result is truncated. Valid values: true: truncated; false: not truncated.
     * @param array $RoleAssignments Authorization list of the target account of the Tencent Cloud Organization.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("NextToken",$param) and $param["NextToken"] !== null) {
            $this->NextToken = $param["NextToken"];
        }

        if (array_key_exists("TotalCounts",$param) and $param["TotalCounts"] !== null) {
            $this->TotalCounts = $param["TotalCounts"];
        }

        if (array_key_exists("MaxResults",$param) and $param["MaxResults"] !== null) {
            $this->MaxResults = $param["MaxResults"];
        }

        if (array_key_exists("IsTruncated",$param) and $param["IsTruncated"] !== null) {
            $this->IsTruncated = $param["IsTruncated"];
        }

        if (array_key_exists("RoleAssignments",$param) and $param["RoleAssignments"] !== null) {
            $this->RoleAssignments = [];
            foreach ($param["RoleAssignments"] as $key => $value){
                $obj = new RoleAssignments();
                $obj->deserialize($value);
                array_push($this->RoleAssignments, $obj);
            }
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
